/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package ru.jSkyRoom.bridge.major;

import ru.jSkyRoom.bridge.JSkyBridge;
import ru.jSkyRoom.interfaces.major.Major;
import ru.jSkyRoom.interfaces.major.Spell;
import ru.jSkyRoom.interfaces.sub.JSkyAttackData;
import skyproc.FormID;
import skyproc.RACE.AttackData;

/**
 *
 * @author Rakev
 */
public class AttackDataBridge extends JSkyBridge<AttackData> implements JSkyAttackData {

    public AttackDataBridge(AttackData rawObject) {
        super(rawObject);
    }

    @Override
    public Spell getAttackSpell() {
        FormID id = getRawObject().getAttackSpell();
        return getFinderFactory().createSpellFinder().find(id);
    }

    @Override
    public void setAttackSpell(Spell spell) {
        FormID id = getIdProducer().produce(spell);
        getRawObject().setAttackSpell(id);
    }

    @Override
    public Major getAttackType() {
        FormID id = getRawObject().getAttackType();
        return getFinderFactory().createMajorFinder().find(id);
    }

    @Override
    public void setAttackType(Major type) {
        FormID id = getIdProducer().produce(type);
        getRawObject().setAttackType(id);
    }

    @Override
    public float getDamageMult() {
        return getRawObject().getDamageMult();
    }

    @Override
    public void setDamageMult(float in) {
        getRawObject().setDamageMult(in);
    }

    @Override
    public float getAttackChance() {
        return getRawObject().getAttackChance();
    }

    @Override
    public void setAttackChance(float in) {
        getRawObject().setAttackChance(in);
    }

    @Override
    public float getAttackAngle() {
        return getRawObject().getAttackAngle();
    }

    @Override
    public void setAttackAngle(float in) {
        getRawObject().setAttackAngle(in);
    }

    @Override
    public float getStrikeAngle() {
        return getRawObject().getStrikeAngle();
    }

    @Override
    public void setStrikeAngle(float in) {
        getRawObject().setStrikeAngle(in);
    }

    @Override
    public float getStagger() {
        return getRawObject().getStagger();
    }

    @Override
    public void setStagger(float in) {
        getRawObject().setStagger(in);
    }

    @Override
    public float getKnockDown() {
        return getRawObject().getKnockDown();
    }

    @Override
    public void setKnockDown(float in) {
        getRawObject().setKnockDown(in);
    }

    @Override
    public float getRecoveryTime() {
        return getRawObject().getRecoveryTime();
    }

    @Override
    public void setRecoveryTime(float in) {
        getRawObject().setRecoveryTime(in);
    }

    @Override
    public float getFatigueMult() {
        return getRawObject().getFatigueMult();
    }

    @Override
    public void setFatigueMult(float in) {
        getRawObject().setFatigueMult(in);
    }

}
